Someone online said it cant be done but it really doesnt seem that hard

We can create custom definitions for specific types And then those that dont have custom definitions can use isinstance

We have a checking function ⌿( obj: Any, complexType: type)-> bool: ... Examples of custom definitions:

if a tuple of specific types and length is specified, we can check the instance types in order using ⌿

If a list of multiple types is passed then we can run ⌿ on every member of the instance for each specified list type and make sure it matches one of them. same can be done for dict but with keys and values